﻿using System;

namespace WindowsFormsGUI.Entidades
{
    public static class Contador
    {
        public static int MonedasFalsas { get; set; }
        public static int Moneda5Centavos { get; set; }
        public static int Moneda10Centavos { get; set; }
        public static int Moneda25Centavos { get; set; }
        public static int Moneda50Centavos { get; set; }
        public static int Moneda1Peso { get; set; }

        public static void Agregar(Moneda moneda)
        {
            switch (moneda.Nombre)
            {
                case DenominacionEnum.CincoCentavos:
                    Moneda5Centavos++;
                    break;
                case DenominacionEnum.DiezCentavos:
                    Moneda10Centavos++;
                    break;
                case DenominacionEnum.VeinticincoCentavos:
                    Moneda25Centavos++;
                    break;
                case DenominacionEnum.CincuentaCentavos:
                    Moneda50Centavos++;
                    break;
                case DenominacionEnum.UnPeso:
                    Moneda1Peso++;
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }

        public static double MontoTotal()
        {
            return (Moneda5Centavos * 0.05) + (Moneda10Centavos * 0.10) + (Moneda25Centavos * 0.25) +
            (Moneda50Centavos * 0.50) + (Moneda1Peso * 1);
        }

        public static int CantidadDeMonedasProcesadas()
        {
            return Moneda5Centavos + Moneda10Centavos + Moneda25Centavos +
            Moneda50Centavos + Moneda1Peso + MonedasFalsas;
        }

        public static int CantidadDeMonedasVerdaderas()
        {
            return Moneda5Centavos + Moneda10Centavos + Moneda25Centavos +
            Moneda50Centavos + Moneda1Peso;
        }

        public static double Monto5Centavos()
        {
            return Moneda5Centavos * 0.05;
        }

        public static double Monto10Centavos()
        {
            return Moneda10Centavos * 0.10;
        }

        public static double Monto25Centavos()
        {
            return Moneda25Centavos * 0.25;
        }

        public static double Monto50Centavos()
        {
            return Moneda50Centavos * 0.50;
        }
    }
}
